'\" t
.\"     Title: bugle-unwindstack
.\"    Author: 
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\"      Date: October 2007
.\"    Manual: Bugle user manual
.\"    Source: BUGLE 0.0.20150628
.\"  Language: English
.\"
.TH "BUGLE\-UNWINDSTACK" "7" "October 2007" "BUGLE 0.0.20150628" "Bugle user manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
bugle-unwindstack \- recover a stack trace after a segmentation fault
.SH "SYNOPSIS"
.sp
.nf
filterset unwindstack
.fi
.SH "DESCRIPTION"
.PP
Some OpenGL drivers (particularly proprietry drivers) are compiled without frame pointer information\&. The result is that if you pass a bad pointer to the driver, causing it to segfault,
\fBgdb\fR(1)
is unable to produce a stack trace showing that location of the fault\&. This filter\-set uses some ugly hacks to try to correct this\&.
.PP
When using this filter\-set and debugging your application in
\fBgdb\fR(1), the segmentation fault will still leave you without a stack trace\&. However, if you continue running, you will get a second segmentation fault, at which point a stack trace is available\&.
.PP
Note that the call that causes the segmentation fault may not be the direct cause; for example, a bad pointer passed to
\fBglVertexPointer\fR
might only cause a segmentation fault in
\fBglDrawArrays\fR\&. See also the
\fBbugle-checks\fR(7)
filter\-set, which does some aggressive error\-checking and can detect some of these conditions\&.
.SH "BUGS"
.PP
The method used to recover the stack trace violates POSIX rules (and common sense) about the use of
\fBsetjmp\fR\&. It works for me under Linux with NVIDIA drivers, but your mileage might vary\&.
.SH "AUTHOR"
.PP
bugle
is written and maintained by
Bruce Merry\&.
.SH "SEE ALSO"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBbugle\fR(3)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBbugle-checks\fR(7)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBsetjmp\fR(3)
.RE
